(function(modules) { // webpack的启动代码自执行函数
	// The module cache 模块的缓存
	var installedModules = {};

	// The require function webpack自己实现了一个require方法
	function __webpack_require__(moduleId) {

		// Check if module is in cache 判断一下这个模块ID是否在缓存中
		if(installedModules[moduleId]) {
			return installedModules[moduleId].exports;//如果有，说明此模块加载过，直接返回导出对象exports
		}
		// Create a new module (and put it into the cache)
    // 创建一个新的模块对象并且把它放到缓存中
		var module = installedModules[moduleId] = {
			i: moduleId,// 模块ID
			l: false,//是否已经加载loaded false
			exports: {} //导出对象，默认是一个空对象
		};

		// Execute the module function 执行此模块对应的方法,目的是给module.exports赋值
		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

		// Flag the module as loaded 把模块设置为已加载
		module.l = true;

		// Return the exports of the module 返回模块的导出对象
		return module.exports;
	}



	// the startup function
	function startup() {
		// Load entry module and return exports
    //加载入口模块并且返回导出对象
		return __webpack_require__("./src/index.js");
	};

	// run startup 执行启动方法
	return startup();
})
({

 "./src/hello.js":
 (function(module) {
   module.exports = "hello";
 }),
 "./src/index.js":
 (function(__unusedmodule, __unusedexports, __webpack_require__) {
  //require方法名变了 引入模块名变了
  //webpack打包后会把的模块名，都变成相对于项目根目录的相对路径 
  //全部以是./src开头
  /*let hello = require('./hello.js');
  console.log(hello);*/

  let hello = __webpack_require__( "./src/hello.js");
  console.log(hello);
 })

});